// export Zajete , Centrowanie , Licznik ; starting begin FastRotate ;
   0: CALL 5065 0 0
// Centrowanie = 1 ;
   4: LD_ADDR_EXP 2
   8: PUSH
   9: LD_INT 1
  11: ST_TO_ADDR
// Licznik = 0 ;
  12: LD_ADDR_EXP 3
  16: PUSH
  17: LD_INT 0
  19: ST_TO_ADDR
// RandomizeAll ;
  20: CALL_OW 11
// Resetfog ;
  24: CALL_OW 335
// PrepareRussian ;
  28: CALL 1914 0 0
// PrepareEastLegion ;
  32: CALL 1745 0 0
// PrepareOilBarrel ;
  36: CALL 4354 0 0
// PrepareNature ;
  40: CALL 4582 0 0
// PrepareVeh ;
  44: CALL 3394 0 0
// Zajete = false ;
  48: LD_ADDR_EXP 1
  52: PUSH
  53: LD_INT 0
  55: ST_TO_ADDR
// M1Decyzja ;
  56: CALL 1611 0 0
// disable ( 3 ) ;
  60: LD_INT 3
  62: DISABLE_MARKED
// disable ( 10 ) ;
  63: LD_INT 10
  65: DISABLE_MARKED
// SetSide ( [ Dragon , Immortal , Michael ] , 3 ) ;
  66: LD_INT 142
  68: PUSH
  69: LD_INT 127
  71: PUSH
  72: LD_INT 138
  74: PUSH
  75: EMPTY
  76: LIST
  77: LIST
  78: LIST
  79: PPUSH
  80: LD_INT 3
  82: PPUSH
  83: CALL_OW 235
// Comenterunit ( sdf1 , shg1 ) ;
  87: LD_INT 186
  89: PPUSH
  90: LD_INT 191
  92: PPUSH
  93: CALL_OW 120
// Comenterunit ( sdf2 , shg2 ) ;
  97: LD_INT 190
  99: PPUSH
 100: LD_INT 198
 102: PPUSH
 103: CALL_OW 120
// ComEnterUnit ( [ Dragon , Immortal , Michael ] , stodola ) ;
 107: LD_INT 142
 109: PUSH
 110: LD_INT 127
 112: PUSH
 113: LD_INT 138
 115: PUSH
 116: EMPTY
 117: LIST
 118: LIST
 119: LIST
 120: PPUSH
 121: LD_INT 3
 123: PPUSH
 124: CALL_OW 120
// InGameOn ;
 128: CALL_OW 8
// centeronunits ( [ szakal , gizold ] ) ;
 132: LD_EXP 6
 136: PUSH
 137: LD_EXP 7
 141: PUSH
 142: EMPTY
 143: LIST
 144: LIST
 145: PPUSH
 146: CALL_OW 85
// Say ( gizold , a1 ) ;
 150: LD_EXP 7
 154: PPUSH
 155: LD_STRING a1
 157: PPUSH
 158: CALL_OW 88
// Say ( szakal , a2 ) ;
 162: LD_EXP 6
 166: PPUSH
 167: LD_STRING a2
 169: PPUSH
 170: CALL_OW 88
// Say ( gizold , a3 ) ;
 174: LD_EXP 7
 178: PPUSH
 179: LD_STRING a3
 181: PPUSH
 182: CALL_OW 88
// ComMoveXY ( [ gizold , szakal , smoke , maniek ] , 44 , 49 ) ;
 186: LD_EXP 7
 190: PUSH
 191: LD_EXP 6
 195: PUSH
 196: LD_EXP 9
 200: PUSH
 201: LD_EXP 8
 205: PUSH
 206: EMPTY
 207: LIST
 208: LIST
 209: LIST
 210: LIST
 211: PPUSH
 212: LD_INT 44
 214: PPUSH
 215: LD_INT 49
 217: PPUSH
 218: CALL_OW 111
// Say ( smoke , a4 ) ;
 222: LD_EXP 9
 226: PPUSH
 227: LD_STRING a4
 229: PPUSH
 230: CALL_OW 88
// CenterNowOnUnits ( Szakal ) ;
 234: LD_EXP 6
 238: PPUSH
 239: CALL_OW 87
// Say ( szakal , a5 ) ;
 243: LD_EXP 6
 247: PPUSH
 248: LD_STRING a5
 250: PPUSH
 251: CALL_OW 88
// CenterNowOnUnits ( Szakal ) ;
 255: LD_EXP 6
 259: PPUSH
 260: CALL_OW 87
// Say ( gizold , a6 ) ;
 264: LD_EXP 7
 268: PPUSH
 269: LD_STRING a6
 271: PPUSH
 272: CALL_OW 88
// CenterNowOnUnits ( Szakal ) ;
 276: LD_EXP 6
 280: PPUSH
 281: CALL_OW 87
// SetSide ( [ Dragon , Immortal , Michael ] , 7 ) ;
 285: LD_INT 142
 287: PUSH
 288: LD_INT 127
 290: PUSH
 291: LD_INT 138
 293: PUSH
 294: EMPTY
 295: LIST
 296: LIST
 297: LIST
 298: PPUSH
 299: LD_INT 7
 301: PPUSH
 302: CALL_OW 235
// SayRadio ( Immortal , a7 ) ;
 306: LD_INT 127
 308: PPUSH
 309: LD_STRING a7
 311: PPUSH
 312: CALL_OW 94
// CenterNowOnUnits ( Szakal ) ;
 316: LD_EXP 6
 320: PPUSH
 321: CALL_OW 87
// SayRadio ( Immortal , a8 ) ;
 325: LD_INT 127
 327: PPUSH
 328: LD_STRING a8
 330: PPUSH
 331: CALL_OW 94
// CenterNowOnUnits ( Szakal ) ;
 335: LD_EXP 6
 339: PPUSH
 340: CALL_OW 87
// SayRadio ( Immortal , a9 ) ;
 344: LD_INT 127
 346: PPUSH
 347: LD_STRING a9
 349: PPUSH
 350: CALL_OW 94
// CenterNowOnUnits ( Szakal ) ;
 354: LD_EXP 6
 358: PPUSH
 359: CALL_OW 87
// Say ( smoke , a10 ) ;
 363: LD_EXP 9
 367: PPUSH
 368: LD_STRING a10
 370: PPUSH
 371: CALL_OW 88
// CenterNowOnUnits ( Szakal ) ;
 375: LD_EXP 6
 379: PPUSH
 380: CALL_OW 87
// Say ( maniek , a11 ) ;
 384: LD_EXP 8
 388: PPUSH
 389: LD_STRING a11
 391: PPUSH
 392: CALL_OW 88
// CenterNowOnUnits ( Szakal ) ;
 396: LD_EXP 6
 400: PPUSH
 401: CALL_OW 87
// Centrowanie = 0 ;
 405: LD_ADDR_EXP 2
 409: PUSH
 410: LD_INT 0
 412: ST_TO_ADDR
// InGameOff ;
 413: CALL_OW 9
// SaveForQuickRestart ;
 417: CALL_OW 22
// ChangeMissionObjectives ( C1 ) ;
 421: LD_STRING C1
 423: PPUSH
 424: CALL_OW 337
// ChangeMissionObjectives ( C2 ) ;
 428: LD_STRING C2
 430: PPUSH
 431: CALL_OW 337
// SetSide ( [ Dragon , Immortal , Michael ] , 7 ) ;
 435: LD_INT 142
 437: PUSH
 438: LD_INT 127
 440: PUSH
 441: LD_INT 138
 443: PUSH
 444: EMPTY
 445: LIST
 446: LIST
 447: LIST
 448: PPUSH
 449: LD_INT 7
 451: PPUSH
 452: CALL_OW 235
// end ;
 456: END
// every 1 marked 1 do var human , veh , i ;
 457: GO 459
 459: DISABLE
 460: LD_INT 0
 462: PPUSH
 463: PPUSH
 464: PPUSH
// begin enable ;
 465: ENABLE
// for i in FilterAllUnits ( [ f_side , 8 ] ) do
 466: LD_ADDR_VAR 0 3
 470: PUSH
 471: LD_INT 22
 473: PUSH
 474: LD_INT 8
 476: PUSH
 477: EMPTY
 478: LIST
 479: LIST
 480: PPUSH
 481: CALL_OW 69
 485: PUSH
 486: FOR_IN
 487: IFFALSE 551
// begin if IsInArea ( i , Wycofanie ) then
 489: LD_VAR 0 3
 493: PPUSH
 494: LD_INT 11
 496: PPUSH
 497: CALL_OW 308
 501: IFFALSE 549
// begin ComStop ( FilterAllUnits ( [ f_side , 8 ] ) ) ;
 503: LD_INT 22
 505: PUSH
 506: LD_INT 8
 508: PUSH
 509: EMPTY
 510: LIST
 511: LIST
 512: PPUSH
 513: CALL_OW 69
 517: PPUSH
 518: CALL_OW 141
// ComMoveXY ( i , 43 , 49 ) ;
 522: LD_VAR 0 3
 526: PPUSH
 527: LD_INT 43
 529: PPUSH
 530: LD_INT 49
 532: PPUSH
 533: CALL_OW 111
// Say ( Gizold , addon1 ) ;
 537: LD_EXP 7
 541: PPUSH
 542: LD_STRING addon1
 544: PPUSH
 545: CALL_OW 88
// end ; end ;
 549: GO 486
 551: POP
 552: POP
// end ;
 553: PPOPN 3
 555: END
// every 0 0$1 trigger IsDead ( sdf1 ) and IsDead ( sdf2 ) and IsDead ( szef ) do
 556: LD_INT 186
 558: PPUSH
 559: CALL_OW 301
 563: PUSH
 564: LD_INT 190
 566: PPUSH
 567: CALL_OW 301
 571: AND
 572: PUSH
 573: LD_INT 22
 575: PPUSH
 576: CALL_OW 301
 580: AND
 581: IFFALSE 744
 583: GO 585
 585: DISABLE
// begin ComExitBuilding ( immortal ) ;
 586: LD_INT 127
 588: PPUSH
 589: CALL_OW 122
// ComExitBuilding ( dragon ) ;
 593: LD_INT 142
 595: PPUSH
 596: CALL_OW 122
// ComExitBuilding ( michael ) ;
 600: LD_INT 138
 602: PPUSH
 603: CALL_OW 122
// Setside ( [ immortal , dragon , michael ] , 8 ) ;
 607: LD_INT 127
 609: PUSH
 610: LD_INT 142
 612: PUSH
 613: LD_INT 138
 615: PUSH
 616: EMPTY
 617: LIST
 618: LIST
 619: LIST
 620: PPUSH
 621: LD_INT 8
 623: PPUSH
 624: CALL_OW 235
// InGameOn ;
 628: CALL_OW 8
// centeronunits ( [ szakal , immortal ] ) ;
 632: LD_EXP 6
 636: PUSH
 637: LD_INT 127
 639: PUSH
 640: EMPTY
 641: LIST
 642: LIST
 643: PPUSH
 644: CALL_OW 85
// Say ( immortal , b1 ) ;
 648: LD_INT 127
 650: PPUSH
 651: LD_STRING b1
 653: PPUSH
 654: CALL_OW 88
// Say ( gizold , b2 ) ;
 658: LD_EXP 7
 662: PPUSH
 663: LD_STRING b2
 665: PPUSH
 666: CALL_OW 88
// Say ( dragon , b3 ) ;
 670: LD_INT 142
 672: PPUSH
 673: LD_STRING b3
 675: PPUSH
 676: CALL_OW 88
// Say ( szakal , b4 ) ;
 680: LD_EXP 6
 684: PPUSH
 685: LD_STRING b4
 687: PPUSH
 688: CALL_OW 88
// Say ( szakal , b5 ) ;
 692: LD_EXP 6
 696: PPUSH
 697: LD_STRING b5
 699: PPUSH
 700: CALL_OW 88
// ChangeMissionObjectives ( C3 ) ;
 704: LD_STRING C3
 706: PPUSH
 707: CALL_OW 337
// SetAreaMapShow ( koniec , 1 ) ;
 711: LD_INT 1
 713: PPUSH
 714: LD_INT 1
 716: PPUSH
 717: CALL_OW 424
// AddMedal ( med1 , 1 ) ;
 721: LD_STRING med1
 723: PPUSH
 724: LD_INT 1
 726: PPUSH
 727: CALL_OW 101
// InGameOff ;
 731: CALL_OW 9
// enable ( 3 ) ;
 735: LD_INT 3
 737: ENABLE_MARKED
// disable ( 1 ) ;
 738: LD_INT 1
 740: DISABLE_MARKED
// disable ( 1 ) ;
 741: LD_INT 1
 743: DISABLE_MARKED
// end ;
 744: END
// every 0 0$1 trigger FilterUnitsInArea ( Gadka , [ f_side , 8 ] ) > 0 marked 2 do
 745: LD_INT 10
 747: PPUSH
 748: LD_INT 22
 750: PUSH
 751: LD_INT 8
 753: PUSH
 754: EMPTY
 755: LIST
 756: LIST
 757: PPUSH
 758: CALL_OW 70
 762: PUSH
 763: LD_INT 0
 765: GREATER
 766: IFFALSE 872
 768: GO 770
 770: DISABLE
// begin DialogueOn ;
 771: CALL_OW 6
// SayRadio ( gizold , c1 ) ;
 775: LD_EXP 7
 779: PPUSH
 780: LD_STRING c1
 782: PPUSH
 783: CALL_OW 94
// SayRadio ( fajfer , c2 ) ;
 787: LD_EXP 10
 791: PPUSH
 792: LD_STRING c2
 794: PPUSH
 795: CALL_OW 94
// SayRadio ( fajfer , c3 ) ;
 799: LD_EXP 10
 803: PPUSH
 804: LD_STRING c3
 806: PPUSH
 807: CALL_OW 94
// SayRadio ( gizold , c4 ) ;
 811: LD_EXP 7
 815: PPUSH
 816: LD_STRING c4
 818: PPUSH
 819: CALL_OW 94
// SayRadio ( fajfer , c5 ) ;
 823: LD_EXP 10
 827: PPUSH
 828: LD_STRING c5
 830: PPUSH
 831: CALL_OW 94
// DialogueOff ;
 835: CALL_OW 7
// ChangeMissionObjectives ( C3o ) ;
 839: LD_STRING C3o
 841: PPUSH
 842: CALL_OW 337
// ChangeMissionObjectives ( C4 ) ;
 846: LD_STRING C4
 848: PPUSH
 849: CALL_OW 337
// SetAreaMapShow ( koniec , 0 ) ;
 853: LD_INT 1
 855: PPUSH
 856: LD_INT 0
 858: PPUSH
 859: CALL_OW 424
// enable ( 4 ) ;
 863: LD_INT 4
 865: ENABLE_MARKED
// disable ( 2 ) ;
 866: LD_INT 2
 868: DISABLE_MARKED
// disable ( 2 ) ;
 869: LD_INT 2
 871: DISABLE_MARKED
// end ;
 872: END
// every 5 5$00 trigger Skutek = 1 do
 873: LD_EXP 13
 877: PUSH
 878: LD_INT 1
 880: EQUAL
 881: IFFALSE 891
 883: GO 885
 885: DISABLE
// begin enable ;
 886: ENABLE
// PrepareRuVeh ;
 887: CALL 3084 0 0
// end ;
 891: END
// every 1 do var human , veh , i ;
 892: GO 894
 894: DISABLE
 895: LD_INT 0
 897: PPUSH
 898: PPUSH
 899: PPUSH
// begin enable ;
 900: ENABLE
// for i in FilterAllUnits ( [ f_side , 3 ] ) do
 901: LD_ADDR_VAR 0 3
 905: PUSH
 906: LD_INT 22
 908: PUSH
 909: LD_INT 3
 911: PUSH
 912: EMPTY
 913: LIST
 914: LIST
 915: PPUSH
 916: CALL_OW 69
 920: PUSH
 921: FOR_IN
 922: IFFALSE 949
// begin if IsInArea ( i , RuVehDelete ) then
 924: LD_VAR 0 3
 928: PPUSH
 929: LD_INT 6
 931: PPUSH
 932: CALL_OW 308
 936: IFFALSE 947
// begin RemoveUnit ( i ) ;
 938: LD_VAR 0 3
 942: PPUSH
 943: CALL_OW 64
// end ; end ;
 947: GO 921
 949: POP
 950: POP
// end ;
 951: PPOPN 3
 953: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_building ] ] ) = 0 do
 954: LD_INT 22
 956: PUSH
 957: LD_INT 3
 959: PUSH
 960: EMPTY
 961: LIST
 962: LIST
 963: PUSH
 964: LD_INT 21
 966: PUSH
 967: LD_INT 3
 969: PUSH
 970: EMPTY
 971: LIST
 972: LIST
 973: PUSH
 974: EMPTY
 975: LIST
 976: LIST
 977: PPUSH
 978: CALL_OW 69
 982: PUSH
 983: LD_INT 0
 985: EQUAL
 986: IFFALSE 1046
 988: GO 990
 990: DISABLE
// begin SayRadio ( dragon , d1 ) ;
 991: LD_INT 142
 993: PPUSH
 994: LD_STRING d1
 996: PPUSH
 997: CALL_OW 94
// SayRadio ( fajfer , d2 ) ;
1001: LD_EXP 10
1005: PPUSH
1006: LD_STRING d2
1008: PPUSH
1009: CALL_OW 94
// SetAreaMapShow ( koniec , 1 ) ;
1013: LD_INT 1
1015: PPUSH
1016: LD_INT 1
1018: PPUSH
1019: CALL_OW 424
// AddMedal ( med2 , 1 ) ;
1023: LD_STRING med2
1025: PPUSH
1026: LD_INT 1
1028: PPUSH
1029: CALL_OW 101
// ChangeMissionObjectives ( C5 ) ;
1033: LD_STRING C5
1035: PPUSH
1036: CALL_OW 337
// enable ( 10 ) ;
1040: LD_INT 10
1042: ENABLE_MARKED
// disable ( 101 ) ;
1043: LD_INT 101
1045: DISABLE_MARKED
// end ;
1046: END
// every 0 0$1 trigger FilterUnitsInArea ( koniec , [ [ f_side , 8 ] , [ f_type , unit_human ] ] ) > 0 do
1047: LD_INT 1
1049: PPUSH
1050: LD_INT 22
1052: PUSH
1053: LD_INT 8
1055: PUSH
1056: EMPTY
1057: LIST
1058: LIST
1059: PUSH
1060: LD_INT 21
1062: PUSH
1063: LD_INT 1
1065: PUSH
1066: EMPTY
1067: LIST
1068: LIST
1069: PUSH
1070: EMPTY
1071: LIST
1072: LIST
1073: PPUSH
1074: CALL_OW 70
1078: PUSH
1079: LD_INT 0
1081: GREATER
1082: IFFALSE 1296
1084: GO 1086
1086: DISABLE
// begin if Zajete = true then
1087: LD_EXP 1
1091: PUSH
1092: LD_INT 1
1094: EQUAL
1095: IFFALSE 1154
// begin AddMedal ( med3 , 1 ) ;
1097: LD_STRING med3
1099: PPUSH
1100: LD_INT 1
1102: PPUSH
1103: CALL_OW 101
// SaveVariable ( [ GetChassis ( komora ) , GetEngine ( komora ) , GetControl ( komora ) , GetWeapon ( komora ) ] , komora ) ;
1107: LD_INT 168
1109: PPUSH
1110: CALL_OW 265
1114: PUSH
1115: LD_INT 168
1117: PPUSH
1118: CALL_OW 262
1122: PUSH
1123: LD_INT 168
1125: PPUSH
1126: CALL_OW 263
1130: PUSH
1131: LD_INT 168
1133: PPUSH
1134: CALL_OW 264
1138: PUSH
1139: EMPTY
1140: LIST
1141: LIST
1142: LIST
1143: LIST
1144: PPUSH
1145: LD_STRING komora
1147: PPUSH
1148: CALL_OW 39
// end else
1152: GO 1165
// begin AddMedal ( med3 , - 1 ) ;
1154: LD_STRING med3
1156: PPUSH
1157: LD_INT 1
1159: NEG
1160: PPUSH
1161: CALL_OW 101
// end ; GiveMedals ( Main ) ;
1165: LD_STRING Main
1167: PPUSH
1168: CALL_OW 102
// RewardPeople ( [ szakal , gizold , maniek , smoke , immortal , dragon , michael ] ) ;
1172: LD_EXP 6
1176: PUSH
1177: LD_EXP 7
1181: PUSH
1182: LD_EXP 8
1186: PUSH
1187: LD_EXP 9
1191: PUSH
1192: LD_INT 127
1194: PUSH
1195: LD_INT 142
1197: PUSH
1198: LD_INT 138
1200: PUSH
1201: EMPTY
1202: LIST
1203: LIST
1204: LIST
1205: LIST
1206: LIST
1207: LIST
1208: LIST
1209: PPUSH
1210: CALL_OW 43
// SaveCharacters ( maniek , maniek ) ;
1214: LD_EXP 8
1218: PPUSH
1219: LD_STRING maniek
1221: PPUSH
1222: CALL_OW 38
// SaveCharacters ( szakal , szakal ) ;
1226: LD_EXP 6
1230: PPUSH
1231: LD_STRING szakal
1233: PPUSH
1234: CALL_OW 38
// SaveCharacters ( smoke , smoke ) ;
1238: LD_EXP 9
1242: PPUSH
1243: LD_STRING smoke
1245: PPUSH
1246: CALL_OW 38
// SaveCharacters ( gizold , gizold ) ;
1250: LD_EXP 7
1254: PPUSH
1255: LD_STRING gizold
1257: PPUSH
1258: CALL_OW 38
// SaveCharacters ( michael , michael ) ;
1262: LD_INT 138
1264: PPUSH
1265: LD_STRING michael
1267: PPUSH
1268: CALL_OW 38
// SaveCharacters ( dragon , dragon ) ;
1272: LD_INT 142
1274: PPUSH
1275: LD_STRING dragon
1277: PPUSH
1278: CALL_OW 38
// SaveCharacters ( immortal , immortal ) ;
1282: LD_INT 127
1284: PPUSH
1285: LD_STRING immortal
1287: PPUSH
1288: CALL_OW 38
// youwin ;
1292: CALL_OW 103
// end ;
1296: END
// every 0 0$03 marked 90 do var i , un , filter , fac ;
1297: GO 1299
1299: DISABLE
1300: LD_INT 0
1302: PPUSH
1303: PPUSH
1304: PPUSH
1305: PPUSH
// begin enable ;
1306: ENABLE
// filter := FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_vehicle ] , [ f_weapon , 42 ] ] ) ;
1307: LD_ADDR_VAR 0 3
1311: PUSH
1312: LD_INT 22
1314: PUSH
1315: LD_INT 3
1317: PUSH
1318: EMPTY
1319: LIST
1320: LIST
1321: PUSH
1322: LD_INT 21
1324: PUSH
1325: LD_INT 2
1327: PUSH
1328: EMPTY
1329: LIST
1330: LIST
1331: PUSH
1332: LD_INT 34
1334: PUSH
1335: LD_INT 42
1337: PUSH
1338: EMPTY
1339: LIST
1340: LIST
1341: PUSH
1342: EMPTY
1343: LIST
1344: LIST
1345: LIST
1346: PPUSH
1347: CALL_OW 69
1351: ST_TO_ADDR
// if filter > 0 then
1352: LD_VAR 0 3
1356: PUSH
1357: LD_INT 0
1359: GREATER
1360: IFFALSE 1447
// begin for i = 1 to filter do
1362: LD_ADDR_VAR 0 1
1366: PUSH
1367: DOUBLE
1368: LD_INT 1
1370: DEC
1371: ST_TO_ADDR
1372: LD_VAR 0 3
1376: PUSH
1377: FOR_TO
1378: IFFALSE 1445
// if See ( 8 , filter [ i ] ) then
1380: LD_INT 8
1382: PPUSH
1383: LD_VAR 0 3
1387: PUSH
1388: LD_VAR 0 1
1392: ARRAY
1393: PPUSH
1394: CALL_OW 292
1398: IFFALSE 1443
// begin disable ( 90 ) ;
1400: LD_INT 90
1402: DISABLE_MARKED
// CenterNowOnUnits ( filter [ i ] ) ;
1403: LD_VAR 0 3
1407: PUSH
1408: LD_VAR 0 1
1412: ARRAY
1413: PPUSH
1414: CALL_OW 87
// Say ( Dragon , addon2 ) ;
1418: LD_INT 142
1420: PPUSH
1421: LD_STRING addon2
1423: PPUSH
1424: CALL_OW 88
// Say ( Szakal , addon3 ) ;
1428: LD_EXP 6
1432: PPUSH
1433: LD_STRING addon3
1435: PPUSH
1436: CALL_OW 88
// disable ( 90 ) ;
1440: LD_INT 90
1442: DISABLE_MARKED
// end ;
1443: GO 1377
1445: POP
1446: POP
// end ; end ;
1447: PPOPN 4
1449: END
// every 0 0$1 trigger See ( 8 , komora ) do
1450: LD_INT 8
1452: PPUSH
1453: LD_INT 168
1455: PPUSH
1456: CALL_OW 292
1460: IFFALSE 1512
1462: GO 1464
1464: DISABLE
// begin SetSide ( komora , 8 ) ;
1465: LD_INT 168
1467: PPUSH
1468: LD_INT 8
1470: PPUSH
1471: CALL_OW 235
// Licznik = 1 ;
1475: LD_ADDR_EXP 3
1479: PUSH
1480: LD_INT 1
1482: ST_TO_ADDR
// Say ( immortal , addon4 ) ;
1483: LD_INT 127
1485: PPUSH
1486: LD_STRING addon4
1488: PPUSH
1489: CALL_OW 88
// Say ( smoke , addon5 ) ;
1493: LD_EXP 9
1497: PPUSH
1498: LD_STRING addon5
1500: PPUSH
1501: CALL_OW 88
// ChangeMissionObjectives ( c6 ) ;
1505: LD_STRING c6
1507: PPUSH
1508: CALL_OW 337
// end ;
1512: END
// every 0 0$1 trigger See ( 8 , secret ) do
1513: LD_INT 8
1515: PPUSH
1516: LD_EXP 15
1520: PPUSH
1521: CALL_OW 292
1525: IFFALSE 1540
1527: GO 1529
1529: DISABLE
// begin Say ( michael , addon7 ) ;
1530: LD_INT 138
1532: PPUSH
1533: LD_STRING addon7
1535: PPUSH
1536: CALL_OW 88
// end ;
1540: END
// export Skrzynie ; every 0 0$1 trigger Skrzynie = 100 do
1541: LD_EXP 4
1545: PUSH
1546: LD_INT 100
1548: EQUAL
1549: IFFALSE 1579
1551: GO 1553
1553: DISABLE
// begin ChangeMissionObjectives ( c6o ) ;
1554: LD_STRING c6o
1556: PPUSH
1557: CALL_OW 337
// Say ( dragon , addon6 ) ;
1561: LD_INT 142
1563: PPUSH
1564: LD_STRING addon6
1566: PPUSH
1567: CALL_OW 88
// Zajete = true ;
1571: LD_ADDR_EXP 1
1575: PUSH
1576: LD_INT 1
1578: ST_TO_ADDR
// end ;
1579: END
// every 0 0$1 trigger Licznik = 1 do
1580: LD_EXP 3
1584: PUSH
1585: LD_INT 1
1587: EQUAL
1588: IFFALSE 1610
1590: GO 1592
1592: DISABLE
// begin enable ;
1593: ENABLE
// skrzynie = GetCargo ( komora , 1 ) ;
1594: LD_ADDR_EXP 4
1598: PUSH
1599: LD_INT 168
1601: PPUSH
1602: LD_INT 1
1604: PPUSH
1605: CALL_OW 289
1609: ST_TO_ADDR
// end ; end_of_file
1610: END
// export Ru1So , Szakal , Gizold , Maniek , Smoke , Fajfer ; export M1Dec1 , M1Dec2 , Skutek ; export RuInBunker ; export function M1Decyzja ; begin
1611: LD_INT 0
1613: PPUSH
// uc_side = 0 ;
1614: LD_ADDR_OWVAR 20
1618: PUSH
1619: LD_INT 0
1621: ST_TO_ADDR
// M1Dec1 = CreateCharacter ( M1Dec1 ) ;
1622: LD_ADDR_EXP 11
1626: PUSH
1627: LD_STRING M1Dec1
1629: PPUSH
1630: CALL_OW 34
1634: ST_TO_ADDR
// M1Dec2 = CreateCharacter ( M1Dec2 ) ;
1635: LD_ADDR_EXP 12
1639: PUSH
1640: LD_STRING M1Dec2
1642: PPUSH
1643: CALL_OW 34
1647: ST_TO_ADDR
// PlaceUnitXY ( M1Dec1 , 186 , 92 , false ) ;
1648: LD_EXP 11
1652: PPUSH
1653: LD_INT 186
1655: PPUSH
1656: LD_INT 92
1658: PPUSH
1659: LD_INT 0
1661: PPUSH
1662: CALL_OW 48
// PlaceUnitXY ( M1Dec2 , 186 , 92 , false ) ;
1666: LD_EXP 12
1670: PPUSH
1671: LD_INT 186
1673: PPUSH
1674: LD_INT 92
1676: PPUSH
1677: LD_INT 0
1679: PPUSH
1680: CALL_OW 48
// if IsLive ( M1Dec1 ) then
1684: LD_EXP 11
1688: PPUSH
1689: CALL_OW 300
1693: IFFALSE 1712
// begin Skutek = 0 ;
1695: LD_ADDR_EXP 13
1699: PUSH
1700: LD_INT 0
1702: ST_TO_ADDR
// RemoveUnit ( M1Dec1 ) ;
1703: LD_EXP 11
1707: PPUSH
1708: CALL_OW 64
// end ; if IsLive ( M1Dec2 ) then
1712: LD_EXP 12
1716: PPUSH
1717: CALL_OW 300
1721: IFFALSE 1740
// begin Skutek = 1 ;
1723: LD_ADDR_EXP 13
1727: PUSH
1728: LD_INT 1
1730: ST_TO_ADDR
// RemoveUnit ( M1Dec2 ) ;
1731: LD_EXP 12
1735: PPUSH
1736: CALL_OW 64
// end ; end ;
1740: LD_VAR 0 1
1744: RET
// export function PrepareEastLegion ; begin
1745: LD_INT 0
1747: PPUSH
// uc_side = 8 ;
1748: LD_ADDR_OWVAR 20
1752: PUSH
1753: LD_INT 8
1755: ST_TO_ADDR
// uc_nation = 1 ;
1756: LD_ADDR_OWVAR 21
1760: PUSH
1761: LD_INT 1
1763: ST_TO_ADDR
// szakal = CreateCharacter ( szakal ) ;
1764: LD_ADDR_EXP 6
1768: PUSH
1769: LD_STRING szakal
1771: PPUSH
1772: CALL_OW 34
1776: ST_TO_ADDR
// PlaceUnitXY ( szakal , 50 , 95 , false ) ;
1777: LD_EXP 6
1781: PPUSH
1782: LD_INT 50
1784: PPUSH
1785: LD_INT 95
1787: PPUSH
1788: LD_INT 0
1790: PPUSH
1791: CALL_OW 48
// fajfer = CreateCharacter ( fajfer ) ;
1795: LD_ADDR_EXP 10
1799: PUSH
1800: LD_STRING fajfer
1802: PPUSH
1803: CALL_OW 34
1807: ST_TO_ADDR
// gizold = CreateCharacter ( gizold ) ;
1808: LD_ADDR_EXP 7
1812: PUSH
1813: LD_STRING gizold
1815: PPUSH
1816: CALL_OW 34
1820: ST_TO_ADDR
// PlaceUnitXY ( gizold , 54 , 97 , false ) ;
1821: LD_EXP 7
1825: PPUSH
1826: LD_INT 54
1828: PPUSH
1829: LD_INT 97
1831: PPUSH
1832: LD_INT 0
1834: PPUSH
1835: CALL_OW 48
// uc_nation = 3 ;
1839: LD_ADDR_OWVAR 21
1843: PUSH
1844: LD_INT 3
1846: ST_TO_ADDR
// maniek = CreateCharacter ( maniek ) ;
1847: LD_ADDR_EXP 8
1851: PUSH
1852: LD_STRING maniek
1854: PPUSH
1855: CALL_OW 34
1859: ST_TO_ADDR
// PlaceUnitXY ( maniek , 54 , 95 , false ) ;
1860: LD_EXP 8
1864: PPUSH
1865: LD_INT 54
1867: PPUSH
1868: LD_INT 95
1870: PPUSH
1871: LD_INT 0
1873: PPUSH
1874: CALL_OW 48
// smoke = CreateCharacter ( smoke ) ;
1878: LD_ADDR_EXP 9
1882: PUSH
1883: LD_STRING smoke
1885: PPUSH
1886: CALL_OW 34
1890: ST_TO_ADDR
// PlaceUnitXY ( smoke , 53 , 94 , false ) ;
1891: LD_EXP 9
1895: PPUSH
1896: LD_INT 53
1898: PPUSH
1899: LD_INT 94
1901: PPUSH
1902: LD_INT 0
1904: PPUSH
1905: CALL_OW 48
// end ;
1909: LD_VAR 0 1
1913: RET
// export function PrepareRussian ; var i , un , RuTurr ; begin
1914: LD_INT 0
1916: PPUSH
1917: PPUSH
1918: PPUSH
1919: PPUSH
// uc_side = 3 ;
1920: LD_ADDR_OWVAR 20
1924: PUSH
1925: LD_INT 3
1927: ST_TO_ADDR
// uc_nation = 3 ;
1928: LD_ADDR_OWVAR 21
1932: PUSH
1933: LD_INT 3
1935: ST_TO_ADDR
// RuTurr := FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_bunker ] ] ) ;
1936: LD_ADDR_VAR 0 4
1940: PUSH
1941: LD_INT 22
1943: PUSH
1944: LD_INT 3
1946: PUSH
1947: EMPTY
1948: LIST
1949: LIST
1950: PUSH
1951: LD_INT 30
1953: PUSH
1954: LD_INT 32
1956: PUSH
1957: EMPTY
1958: LIST
1959: LIST
1960: PUSH
1961: EMPTY
1962: LIST
1963: LIST
1964: PPUSH
1965: CALL_OW 69
1969: ST_TO_ADDR
// for i in RuTurr do
1970: LD_ADDR_VAR 0 2
1974: PUSH
1975: LD_VAR 0 4
1979: PUSH
1980: FOR_IN
1981: IFFALSE 2182
// begin if IsInUnit ( i ) = 0 then
1983: LD_VAR 0 2
1987: PPUSH
1988: CALL_OW 310
1992: PUSH
1993: LD_INT 0
1995: EQUAL
1996: IFFALSE 2180
// begin uc_side = 3 ;
1998: LD_ADDR_OWVAR 20
2002: PUSH
2003: LD_INT 3
2005: ST_TO_ADDR
// uc_nation = 3 ;
2006: LD_ADDR_OWVAR 21
2010: PUSH
2011: LD_INT 3
2013: ST_TO_ADDR
// hc_gallery =  ;
2014: LD_ADDR_OWVAR 33
2018: PUSH
2019: LD_STRING 
2021: ST_TO_ADDR
// hc_name =  ;
2022: LD_ADDR_OWVAR 26
2026: PUSH
2027: LD_STRING 
2029: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2030: LD_ADDR_OWVAR 29
2034: PUSH
2035: LD_INT 9
2037: PPUSH
2038: LD_INT 11
2040: PPUSH
2041: CALL_OW 12
2045: PUSH
2046: LD_INT 10
2048: PPUSH
2049: LD_INT 12
2051: PPUSH
2052: CALL_OW 12
2056: PUSH
2057: EMPTY
2058: LIST
2059: LIST
2060: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) ] ;
2061: LD_ADDR_OWVAR 31
2065: PUSH
2066: LD_INT 1
2068: PPUSH
2069: LD_INT 4
2071: PPUSH
2072: CALL_OW 12
2076: PUSH
2077: LD_INT 0
2079: PPUSH
2080: LD_INT 4
2082: PPUSH
2083: CALL_OW 12
2087: PUSH
2088: LD_INT 0
2090: PPUSH
2091: LD_INT 4
2093: PPUSH
2094: CALL_OW 12
2098: PUSH
2099: LD_INT 0
2101: PPUSH
2102: LD_INT 4
2104: PPUSH
2105: CALL_OW 12
2109: PUSH
2110: EMPTY
2111: LIST
2112: LIST
2113: LIST
2114: LIST
2115: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2116: LD_ADDR_OWVAR 27
2120: PUSH
2121: LD_INT 1
2123: PPUSH
2124: LD_INT 2
2126: PPUSH
2127: CALL_OW 12
2131: ST_TO_ADDR
// hc_class = 1 ;
2132: LD_ADDR_OWVAR 28
2136: PUSH
2137: LD_INT 1
2139: ST_TO_ADDR
// un := CreateHuman ;
2140: LD_ADDR_VAR 0 3
2144: PUSH
2145: CALL_OW 44
2149: ST_TO_ADDR
// PlaceHumanInUnit ( un , i ) ;
2150: LD_VAR 0 3
2154: PPUSH
2155: LD_VAR 0 2
2159: PPUSH
2160: CALL_OW 52
// RuInBunker = RuInBunker ^ un ;
2164: LD_ADDR_EXP 14
2168: PUSH
2169: LD_EXP 14
2173: PUSH
2174: LD_VAR 0 3
2178: ADD
2179: ST_TO_ADDR
// end ; end ;
2180: GO 1980
2182: POP
2183: POP
// for i in rubar do
2184: LD_ADDR_VAR 0 2
2188: PUSH
2189: LD_INT 232
2191: PUSH
2192: FOR_IN
2193: IFFALSE 2365
// begin for i = 1 to 2 do
2195: LD_ADDR_VAR 0 2
2199: PUSH
2200: DOUBLE
2201: LD_INT 1
2203: DEC
2204: ST_TO_ADDR
2205: LD_INT 2
2207: PUSH
2208: FOR_TO
2209: IFFALSE 2361
// begin hc_gallery =  ;
2211: LD_ADDR_OWVAR 33
2215: PUSH
2216: LD_STRING 
2218: ST_TO_ADDR
// hc_name =  ;
2219: LD_ADDR_OWVAR 26
2223: PUSH
2224: LD_STRING 
2226: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2227: LD_ADDR_OWVAR 29
2231: PUSH
2232: LD_INT 9
2234: PPUSH
2235: LD_INT 11
2237: PPUSH
2238: CALL_OW 12
2242: PUSH
2243: LD_INT 10
2245: PPUSH
2246: LD_INT 12
2248: PPUSH
2249: CALL_OW 12
2253: PUSH
2254: EMPTY
2255: LIST
2256: LIST
2257: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) ] ;
2258: LD_ADDR_OWVAR 31
2262: PUSH
2263: LD_INT 1
2265: PPUSH
2266: LD_INT 4
2268: PPUSH
2269: CALL_OW 12
2273: PUSH
2274: LD_INT 0
2276: PPUSH
2277: LD_INT 4
2279: PPUSH
2280: CALL_OW 12
2284: PUSH
2285: LD_INT 0
2287: PPUSH
2288: LD_INT 4
2290: PPUSH
2291: CALL_OW 12
2295: PUSH
2296: LD_INT 0
2298: PPUSH
2299: LD_INT 4
2301: PPUSH
2302: CALL_OW 12
2306: PUSH
2307: EMPTY
2308: LIST
2309: LIST
2310: LIST
2311: LIST
2312: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2313: LD_ADDR_OWVAR 27
2317: PUSH
2318: LD_INT 1
2320: PPUSH
2321: LD_INT 2
2323: PPUSH
2324: CALL_OW 12
2328: ST_TO_ADDR
// hc_class = 1 ;
2329: LD_ADDR_OWVAR 28
2333: PUSH
2334: LD_INT 1
2336: ST_TO_ADDR
// un = CreateHuman ;
2337: LD_ADDR_VAR 0 3
2341: PUSH
2342: CALL_OW 44
2346: ST_TO_ADDR
// PlaceHumanInUnit ( un , rubar ) ;
2347: LD_VAR 0 3
2351: PPUSH
2352: LD_INT 232
2354: PPUSH
2355: CALL_OW 52
// end ;
2359: GO 2208
2361: POP
2362: POP
// end ;
2363: GO 2192
2365: POP
2366: POP
// for i in rufab do
2367: LD_ADDR_VAR 0 2
2371: PUSH
2372: LD_INT 210
2374: PUSH
2375: FOR_IN
2376: IFFALSE 2548
// begin for i = 1 to 3 do
2378: LD_ADDR_VAR 0 2
2382: PUSH
2383: DOUBLE
2384: LD_INT 1
2386: DEC
2387: ST_TO_ADDR
2388: LD_INT 3
2390: PUSH
2391: FOR_TO
2392: IFFALSE 2544
// begin hc_gallery =  ;
2394: LD_ADDR_OWVAR 33
2398: PUSH
2399: LD_STRING 
2401: ST_TO_ADDR
// hc_name =  ;
2402: LD_ADDR_OWVAR 26
2406: PUSH
2407: LD_STRING 
2409: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2410: LD_ADDR_OWVAR 29
2414: PUSH
2415: LD_INT 9
2417: PPUSH
2418: LD_INT 11
2420: PPUSH
2421: CALL_OW 12
2425: PUSH
2426: LD_INT 10
2428: PPUSH
2429: LD_INT 12
2431: PPUSH
2432: CALL_OW 12
2436: PUSH
2437: EMPTY
2438: LIST
2439: LIST
2440: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 0 , 4 ) , Rand ( 1 , 4 ) , Rand ( 0 , 4 ) ] ;
2441: LD_ADDR_OWVAR 31
2445: PUSH
2446: LD_INT 0
2448: PPUSH
2449: LD_INT 4
2451: PPUSH
2452: CALL_OW 12
2456: PUSH
2457: LD_INT 0
2459: PPUSH
2460: LD_INT 4
2462: PPUSH
2463: CALL_OW 12
2467: PUSH
2468: LD_INT 1
2470: PPUSH
2471: LD_INT 4
2473: PPUSH
2474: CALL_OW 12
2478: PUSH
2479: LD_INT 0
2481: PPUSH
2482: LD_INT 4
2484: PPUSH
2485: CALL_OW 12
2489: PUSH
2490: EMPTY
2491: LIST
2492: LIST
2493: LIST
2494: LIST
2495: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2496: LD_ADDR_OWVAR 27
2500: PUSH
2501: LD_INT 1
2503: PPUSH
2504: LD_INT 2
2506: PPUSH
2507: CALL_OW 12
2511: ST_TO_ADDR
// hc_class = 3 ;
2512: LD_ADDR_OWVAR 28
2516: PUSH
2517: LD_INT 3
2519: ST_TO_ADDR
// un = CreateHuman ;
2520: LD_ADDR_VAR 0 3
2524: PUSH
2525: CALL_OW 44
2529: ST_TO_ADDR
// PlaceHumanInUnit ( un , rufab ) ;
2530: LD_VAR 0 3
2534: PPUSH
2535: LD_INT 210
2537: PPUSH
2538: CALL_OW 52
// end ;
2542: GO 2391
2544: POP
2545: POP
// end ;
2546: GO 2375
2548: POP
2549: POP
// for i in rulab do
2550: LD_ADDR_VAR 0 2
2554: PUSH
2555: LD_INT 226
2557: PUSH
2558: FOR_IN
2559: IFFALSE 2731
// begin for i = 1 to 2 do
2561: LD_ADDR_VAR 0 2
2565: PUSH
2566: DOUBLE
2567: LD_INT 1
2569: DEC
2570: ST_TO_ADDR
2571: LD_INT 2
2573: PUSH
2574: FOR_TO
2575: IFFALSE 2727
// begin hc_gallery =  ;
2577: LD_ADDR_OWVAR 33
2581: PUSH
2582: LD_STRING 
2584: ST_TO_ADDR
// hc_name =  ;
2585: LD_ADDR_OWVAR 26
2589: PUSH
2590: LD_STRING 
2592: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2593: LD_ADDR_OWVAR 29
2597: PUSH
2598: LD_INT 9
2600: PPUSH
2601: LD_INT 11
2603: PPUSH
2604: CALL_OW 12
2608: PUSH
2609: LD_INT 10
2611: PPUSH
2612: LD_INT 12
2614: PPUSH
2615: CALL_OW 12
2619: PUSH
2620: EMPTY
2621: LIST
2622: LIST
2623: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) , Rand ( 1 , 4 ) ] ;
2624: LD_ADDR_OWVAR 31
2628: PUSH
2629: LD_INT 0
2631: PPUSH
2632: LD_INT 4
2634: PPUSH
2635: CALL_OW 12
2639: PUSH
2640: LD_INT 0
2642: PPUSH
2643: LD_INT 4
2645: PPUSH
2646: CALL_OW 12
2650: PUSH
2651: LD_INT 0
2653: PPUSH
2654: LD_INT 4
2656: PPUSH
2657: CALL_OW 12
2661: PUSH
2662: LD_INT 1
2664: PPUSH
2665: LD_INT 4
2667: PPUSH
2668: CALL_OW 12
2672: PUSH
2673: EMPTY
2674: LIST
2675: LIST
2676: LIST
2677: LIST
2678: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2679: LD_ADDR_OWVAR 27
2683: PUSH
2684: LD_INT 1
2686: PPUSH
2687: LD_INT 2
2689: PPUSH
2690: CALL_OW 12
2694: ST_TO_ADDR
// hc_class = 4 ;
2695: LD_ADDR_OWVAR 28
2699: PUSH
2700: LD_INT 4
2702: ST_TO_ADDR
// un = CreateHuman ;
2703: LD_ADDR_VAR 0 3
2707: PUSH
2708: CALL_OW 44
2712: ST_TO_ADDR
// PlaceHumanInUnit ( un , rulab ) ;
2713: LD_VAR 0 3
2717: PPUSH
2718: LD_INT 226
2720: PPUSH
2721: CALL_OW 52
// end ;
2725: GO 2574
2727: POP
2728: POP
// end ;
2729: GO 2558
2731: POP
2732: POP
// for i in rudepo do
2733: LD_ADDR_VAR 0 2
2737: PUSH
2738: LD_INT 206
2740: PUSH
2741: FOR_IN
2742: IFFALSE 2914
// begin for i = 1 to 4 do
2744: LD_ADDR_VAR 0 2
2748: PUSH
2749: DOUBLE
2750: LD_INT 1
2752: DEC
2753: ST_TO_ADDR
2754: LD_INT 4
2756: PUSH
2757: FOR_TO
2758: IFFALSE 2910
// begin hc_gallery =  ;
2760: LD_ADDR_OWVAR 33
2764: PUSH
2765: LD_STRING 
2767: ST_TO_ADDR
// hc_name =  ;
2768: LD_ADDR_OWVAR 26
2772: PUSH
2773: LD_STRING 
2775: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2776: LD_ADDR_OWVAR 29
2780: PUSH
2781: LD_INT 9
2783: PPUSH
2784: LD_INT 11
2786: PPUSH
2787: CALL_OW 12
2791: PUSH
2792: LD_INT 10
2794: PPUSH
2795: LD_INT 12
2797: PPUSH
2798: CALL_OW 12
2802: PUSH
2803: EMPTY
2804: LIST
2805: LIST
2806: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 4 ) , Rand ( 1 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) ] ;
2807: LD_ADDR_OWVAR 31
2811: PUSH
2812: LD_INT 0
2814: PPUSH
2815: LD_INT 4
2817: PPUSH
2818: CALL_OW 12
2822: PUSH
2823: LD_INT 1
2825: PPUSH
2826: LD_INT 4
2828: PPUSH
2829: CALL_OW 12
2833: PUSH
2834: LD_INT 0
2836: PPUSH
2837: LD_INT 4
2839: PPUSH
2840: CALL_OW 12
2844: PUSH
2845: LD_INT 0
2847: PPUSH
2848: LD_INT 4
2850: PPUSH
2851: CALL_OW 12
2855: PUSH
2856: EMPTY
2857: LIST
2858: LIST
2859: LIST
2860: LIST
2861: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
2862: LD_ADDR_OWVAR 27
2866: PUSH
2867: LD_INT 1
2869: PPUSH
2870: LD_INT 2
2872: PPUSH
2873: CALL_OW 12
2877: ST_TO_ADDR
// hc_class = 2 ;
2878: LD_ADDR_OWVAR 28
2882: PUSH
2883: LD_INT 2
2885: ST_TO_ADDR
// un = CreateHuman ;
2886: LD_ADDR_VAR 0 3
2890: PUSH
2891: CALL_OW 44
2895: ST_TO_ADDR
// PlaceHumanInUnit ( un , rudepo ) ;
2896: LD_VAR 0 3
2900: PPUSH
2901: LD_INT 206
2903: PPUSH
2904: CALL_OW 52
// end ;
2908: GO 2757
2910: POP
2911: POP
// end ;
2912: GO 2741
2914: POP
2915: POP
// hc_gallery =  ;
2916: LD_ADDR_OWVAR 33
2920: PUSH
2921: LD_STRING 
2923: ST_TO_ADDR
// hc_name =  ;
2924: LD_ADDR_OWVAR 26
2928: PUSH
2929: LD_STRING 
2931: ST_TO_ADDR
// hc_attr = [ Rand ( 9 , 11 ) , Rand ( 10 , 12 ) ] ;
2932: LD_ADDR_OWVAR 29
2936: PUSH
2937: LD_INT 9
2939: PPUSH
2940: LD_INT 11
2942: PPUSH
2943: CALL_OW 12
2947: PUSH
2948: LD_INT 10
2950: PPUSH
2951: LD_INT 12
2953: PPUSH
2954: CALL_OW 12
2958: PUSH
2959: EMPTY
2960: LIST
2961: LIST
2962: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 4 ) ] ;
2963: LD_ADDR_OWVAR 31
2967: PUSH
2968: LD_INT 1
2970: PPUSH
2971: LD_INT 4
2973: PPUSH
2974: CALL_OW 12
2978: PUSH
2979: LD_INT 0
2981: PPUSH
2982: LD_INT 4
2984: PPUSH
2985: CALL_OW 12
2989: PUSH
2990: LD_INT 0
2992: PPUSH
2993: LD_INT 4
2995: PPUSH
2996: CALL_OW 12
3000: PUSH
3001: LD_INT 0
3003: PPUSH
3004: LD_INT 4
3006: PPUSH
3007: CALL_OW 12
3011: PUSH
3012: EMPTY
3013: LIST
3014: LIST
3015: LIST
3016: LIST
3017: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
3018: LD_ADDR_OWVAR 27
3022: PUSH
3023: LD_INT 1
3025: PPUSH
3026: LD_INT 2
3028: PPUSH
3029: CALL_OW 12
3033: ST_TO_ADDR
// hc_class = 1 ;
3034: LD_ADDR_OWVAR 28
3038: PUSH
3039: LD_INT 1
3041: ST_TO_ADDR
// Ru1So = CreateHuman ;
3042: LD_ADDR_EXP 5
3046: PUSH
3047: CALL_OW 44
3051: ST_TO_ADDR
// PlaceUnitArea ( Ru1So , Ru1S , false ) ;
3052: LD_EXP 5
3056: PPUSH
3057: LD_INT 4
3059: PPUSH
3060: LD_INT 0
3062: PPUSH
3063: CALL_OW 49
// ComEnterUnit ( Ru1So , Ru1B ) ;
3067: LD_EXP 5
3071: PPUSH
3072: LD_INT 174
3074: PPUSH
3075: CALL_OW 120
// end ;
3079: LD_VAR 0 1
3083: RET
// export function PrepareRuVeh ; var veh , l , RuTeam , units , un ; begin
3084: LD_INT 0
3086: PPUSH
3087: PPUSH
3088: PPUSH
3089: PPUSH
3090: PPUSH
3091: PPUSH
// l = 0 ;
3092: LD_ADDR_VAR 0 3
3096: PUSH
3097: LD_INT 0
3099: ST_TO_ADDR
// uc_side = 3 ;
3100: LD_ADDR_OWVAR 20
3104: PUSH
3105: LD_INT 3
3107: ST_TO_ADDR
// uc_nation = 3 ;
3108: LD_ADDR_OWVAR 21
3112: PUSH
3113: LD_INT 3
3115: ST_TO_ADDR
// repeat begin vc_chassis = 21 ;
3116: LD_ADDR_OWVAR 37
3120: PUSH
3121: LD_INT 21
3123: ST_TO_ADDR
// vc_engine = engine_combustion ;
3124: LD_ADDR_OWVAR 39
3128: PUSH
3129: LD_INT 1
3131: ST_TO_ADDR
// vc_control = control_manual ;
3132: LD_ADDR_OWVAR 38
3136: PUSH
3137: LD_INT 1
3139: ST_TO_ADDR
// vc_weapon = 42 ;
3140: LD_ADDR_OWVAR 40
3144: PUSH
3145: LD_INT 42
3147: ST_TO_ADDR
// veh = CreateVehicle ;
3148: LD_ADDR_VAR 0 2
3152: PUSH
3153: CALL_OW 45
3157: ST_TO_ADDR
// PlaceUnitArea ( veh , RuVehSpawn , false ) ;
3158: LD_VAR 0 2
3162: PPUSH
3163: LD_INT 5
3165: PPUSH
3166: LD_INT 0
3168: PPUSH
3169: CALL_OW 49
// RuTeam = RuTeam ^ veh ;
3173: LD_ADDR_VAR 0 4
3177: PUSH
3178: LD_VAR 0 4
3182: PUSH
3183: LD_VAR 0 2
3187: ADD
3188: ST_TO_ADDR
// hc_class = 3 ;
3189: LD_ADDR_OWVAR 28
3193: PUSH
3194: LD_INT 3
3196: ST_TO_ADDR
// hc_name =  ;
3197: LD_ADDR_OWVAR 26
3201: PUSH
3202: LD_STRING 
3204: ST_TO_ADDR
// hc_gallery =  ;
3205: LD_ADDR_OWVAR 33
3209: PUSH
3210: LD_STRING 
3212: ST_TO_ADDR
// hc_sex = sex_male ;
3213: LD_ADDR_OWVAR 27
3217: PUSH
3218: LD_INT 1
3220: ST_TO_ADDR
// hc_skills = [ Rand ( 1 , 3 ) , Rand ( 0 , 1 ) , Rand ( 2 , 4 ) , Rand ( 0 , 2 ) ] ;
3221: LD_ADDR_OWVAR 31
3225: PUSH
3226: LD_INT 1
3228: PPUSH
3229: LD_INT 3
3231: PPUSH
3232: CALL_OW 12
3236: PUSH
3237: LD_INT 0
3239: PPUSH
3240: LD_INT 1
3242: PPUSH
3243: CALL_OW 12
3247: PUSH
3248: LD_INT 2
3250: PPUSH
3251: LD_INT 4
3253: PPUSH
3254: CALL_OW 12
3258: PUSH
3259: LD_INT 0
3261: PPUSH
3262: LD_INT 2
3264: PPUSH
3265: CALL_OW 12
3269: PUSH
3270: EMPTY
3271: LIST
3272: LIST
3273: LIST
3274: LIST
3275: ST_TO_ADDR
// PlaceHumanInUnit ( CreateHuman , veh ) ;
3276: CALL_OW 44
3280: PPUSH
3281: LD_VAR 0 2
3285: PPUSH
3286: CALL_OW 52
// l = l + 1 ;
3290: LD_ADDR_VAR 0 3
3294: PUSH
3295: LD_VAR 0 3
3299: PUSH
3300: LD_INT 1
3302: PLUS
3303: ST_TO_ADDR
// end until l = [ 2 , 2 , 3 ] [ Difficulty ] ;
3304: LD_VAR 0 3
3308: PUSH
3309: LD_INT 2
3311: PUSH
3312: LD_INT 2
3314: PUSH
3315: LD_INT 3
3317: PUSH
3318: EMPTY
3319: LIST
3320: LIST
3321: LIST
3322: PUSH
3323: LD_OWVAR 67
3327: ARRAY
3328: EQUAL
3329: IFFALSE 3116
// repeat begin Wait ( 0 0$03 ) ;
3331: LD_INT 105
3333: PPUSH
3334: CALL_OW 67
// units := RuTeam ;
3338: LD_ADDR_VAR 0 5
3342: PUSH
3343: LD_VAR 0 4
3347: ST_TO_ADDR
// for un in units do
3348: LD_ADDR_VAR 0 6
3352: PUSH
3353: LD_VAR 0 5
3357: PUSH
3358: FOR_IN
3359: IFFALSE 3378
// begin ComAgressiveMove ( un , 191 , 96 ) ;
3361: LD_VAR 0 6
3365: PPUSH
3366: LD_INT 191
3368: PPUSH
3369: LD_INT 96
3371: PPUSH
3372: CALL_OW 114
// end ;
3376: GO 3358
3378: POP
3379: POP
// end until RuTeam = [ ] ;
3380: LD_VAR 0 4
3384: PUSH
3385: EMPTY
3386: EQUAL
3387: IFFALSE 3331
// end ;
3389: LD_VAR 0 1
3393: RET
// export Secret ; export function PrepareVeh ; begin
3394: LD_INT 0
3396: PPUSH
// uc_side = 0 ;
3397: LD_ADDR_OWVAR 20
3401: PUSH
3402: LD_INT 0
3404: ST_TO_ADDR
// uc_nation = 3 ;
3405: LD_ADDR_OWVAR 21
3409: PUSH
3410: LD_INT 3
3412: ST_TO_ADDR
// vc_chassis = 22 ;
3413: LD_ADDR_OWVAR 37
3417: PUSH
3418: LD_INT 22
3420: ST_TO_ADDR
// vc_engine = engine_combustion ;
3421: LD_ADDR_OWVAR 39
3425: PUSH
3426: LD_INT 1
3428: ST_TO_ADDR
// vc_control = control_manual ;
3429: LD_ADDR_OWVAR 38
3433: PUSH
3434: LD_INT 1
3436: ST_TO_ADDR
// vc_weapon = 44 ;
3437: LD_ADDR_OWVAR 40
3441: PUSH
3442: LD_INT 44
3444: ST_TO_ADDR
// secret = CreateVehicle ;
3445: LD_ADDR_EXP 15
3449: PUSH
3450: CALL_OW 45
3454: ST_TO_ADDR
// PlaceUnitXY ( Secret , 14 , 13 , false ) ;
3455: LD_EXP 15
3459: PPUSH
3460: LD_INT 14
3462: PPUSH
3463: LD_INT 13
3465: PPUSH
3466: LD_INT 0
3468: PPUSH
3469: CALL_OW 48
// end ; end_of_file
3473: LD_VAR 0 1
3477: RET
// every 0 0$01 do var un , EnginerList , buildings , depots , i ;
3478: GO 3480
3480: DISABLE
3481: LD_INT 0
3483: PPUSH
3484: PPUSH
3485: PPUSH
3486: PPUSH
3487: PPUSH
// begin enable ;
3488: ENABLE
// EnginerList := FilterAllUnits ( [ [ [ f_side , 3 ] , [ f_class , 2 ] , [ f_lives , 1000 ] ] ] ) ;
3489: LD_ADDR_VAR 0 2
3493: PUSH
3494: LD_INT 22
3496: PUSH
3497: LD_INT 3
3499: PUSH
3500: EMPTY
3501: LIST
3502: LIST
3503: PUSH
3504: LD_INT 25
3506: PUSH
3507: LD_INT 2
3509: PUSH
3510: EMPTY
3511: LIST
3512: LIST
3513: PUSH
3514: LD_INT 24
3516: PUSH
3517: LD_INT 1000
3519: PUSH
3520: EMPTY
3521: LIST
3522: LIST
3523: PUSH
3524: EMPTY
3525: LIST
3526: LIST
3527: LIST
3528: PUSH
3529: EMPTY
3530: LIST
3531: PPUSH
3532: CALL_OW 69
3536: ST_TO_ADDR
// buildings := FilterUnitsInArea ( RuBase , [ [ [ f_side , 3 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ] ) ;
3537: LD_ADDR_VAR 0 3
3541: PUSH
3542: LD_INT 9
3544: PPUSH
3545: LD_INT 22
3547: PUSH
3548: LD_INT 3
3550: PUSH
3551: EMPTY
3552: LIST
3553: LIST
3554: PUSH
3555: LD_INT 21
3557: PUSH
3558: LD_INT 3
3560: PUSH
3561: EMPTY
3562: LIST
3563: LIST
3564: PUSH
3565: LD_INT 3
3567: PUSH
3568: LD_INT 24
3570: PUSH
3571: LD_INT 1000
3573: PUSH
3574: EMPTY
3575: LIST
3576: LIST
3577: PUSH
3578: EMPTY
3579: LIST
3580: LIST
3581: PUSH
3582: EMPTY
3583: LIST
3584: LIST
3585: LIST
3586: PUSH
3587: EMPTY
3588: LIST
3589: PPUSH
3590: CALL_OW 70
3594: ST_TO_ADDR
// if buildings > 0 then
3595: LD_VAR 0 3
3599: PUSH
3600: LD_INT 0
3602: GREATER
3603: IFFALSE 3685
// begin for i = 1 to EnginerList do
3605: LD_ADDR_VAR 0 5
3609: PUSH
3610: DOUBLE
3611: LD_INT 1
3613: DEC
3614: ST_TO_ADDR
3615: LD_VAR 0 2
3619: PUSH
3620: FOR_TO
3621: IFFALSE 3683
// begin if IsInUnit ( EnginerList [ i ] ) then
3623: LD_VAR 0 2
3627: PUSH
3628: LD_VAR 0 5
3632: ARRAY
3633: PPUSH
3634: CALL_OW 310
3638: IFFALSE 3657
// ComExitBuilding ( EnginerList [ i ] ) else
3640: LD_VAR 0 2
3644: PUSH
3645: LD_VAR 0 5
3649: ARRAY
3650: PPUSH
3651: CALL_OW 122
3655: GO 3681
// ComRepairBuilding ( EnginerList [ i ] , buildings [ 1 ] ) ;
3657: LD_VAR 0 2
3661: PUSH
3662: LD_VAR 0 5
3666: ARRAY
3667: PPUSH
3668: LD_VAR 0 3
3672: PUSH
3673: LD_INT 1
3675: ARRAY
3676: PPUSH
3677: CALL_OW 130
// end ;
3681: GO 3620
3683: POP
3684: POP
// end ; if buildings = 0 then
3685: LD_VAR 0 3
3689: PUSH
3690: LD_INT 0
3692: EQUAL
3693: IFFALSE 3771
// begin for i = 1 to EnginerList do
3695: LD_ADDR_VAR 0 5
3699: PUSH
3700: DOUBLE
3701: LD_INT 1
3703: DEC
3704: ST_TO_ADDR
3705: LD_VAR 0 2
3709: PUSH
3710: FOR_TO
3711: IFFALSE 3769
// begin if not HasTask ( EnginerList [ i ] ) and not IsInUnit ( EnginerList [ i ] ) then
3713: LD_VAR 0 2
3717: PUSH
3718: LD_VAR 0 5
3722: ARRAY
3723: PPUSH
3724: CALL_OW 314
3728: NOT
3729: PUSH
3730: LD_VAR 0 2
3734: PUSH
3735: LD_VAR 0 5
3739: ARRAY
3740: PPUSH
3741: CALL_OW 310
3745: NOT
3746: AND
3747: IFFALSE 3767
// ComEnterUnit ( EnginerList [ i ] , rudepo ) ;
3749: LD_VAR 0 2
3753: PUSH
3754: LD_VAR 0 5
3758: ARRAY
3759: PPUSH
3760: LD_INT 206
3762: PPUSH
3763: CALL_OW 120
// end ;
3767: GO 3710
3769: POP
3770: POP
// end ; end ;
3771: PPOPN 5
3773: END
// export function ResAllTechs ( side , lab ) ; var i , tech , cout ; begin
3774: LD_INT 0
3776: PPUSH
3777: PPUSH
3778: PPUSH
3779: PPUSH
// for i = 1 to 72 do
3780: LD_ADDR_VAR 0 4
3784: PUSH
3785: DOUBLE
3786: LD_INT 1
3788: DEC
3789: ST_TO_ADDR
3790: LD_INT 72
3792: PUSH
3793: FOR_TO
3794: IFFALSE 3832
// begin if GetTech ( i , side ) = state_enabled then
3796: LD_VAR 0 4
3800: PPUSH
3801: LD_VAR 0 1
3805: PPUSH
3806: CALL_OW 321
3810: PUSH
3811: LD_INT 1
3813: EQUAL
3814: IFFALSE 3830
// AddComResearch ( lab , i ) ;
3816: LD_VAR 0 2
3820: PPUSH
3821: LD_VAR 0 4
3825: PPUSH
3826: CALL_OW 184
// end ;
3830: GO 3793
3832: POP
3833: POP
// cout = cout + 1 ;
3834: LD_ADDR_VAR 0 6
3838: PUSH
3839: LD_VAR 0 6
3843: PUSH
3844: LD_INT 1
3846: PLUS
3847: ST_TO_ADDR
// Wait ( 0 0$01 ) ;
3848: LD_INT 35
3850: PPUSH
3851: CALL_OW 67
// end ;
3855: LD_VAR 0 3
3859: RET
// every 0 0$01 do
3860: GO 3862
3862: DISABLE
// begin ResAllTechs ( 3 , rulab ) ;
3863: LD_INT 3
3865: PPUSH
3866: LD_INT 226
3868: PPUSH
3869: CALL 3774 0 2
// end ;
3873: END
// every 0 0$1 trigger IsDying ( rudepo ) or GetSide ( rudepo ) = 8 do var SoldierList , i ;
3874: LD_INT 206
3876: PPUSH
3877: CALL_OW 303
3881: PUSH
3882: LD_INT 206
3884: PPUSH
3885: CALL_OW 255
3889: PUSH
3890: LD_INT 8
3892: EQUAL
3893: OR
3894: IFFALSE 3996
3896: GO 3898
3898: DISABLE
3899: LD_INT 0
3901: PPUSH
3902: PPUSH
// begin enable ;
3903: ENABLE
// wait ( 0 0$1 ) ;
3904: LD_INT 35
3906: PPUSH
3907: CALL_OW 67
// if RuInBunker > 0 then
3911: LD_EXP 14
3915: PUSH
3916: LD_INT 0
3918: GREATER
3919: IFFALSE 3996
// begin for i = 1 to RuInBunker do
3921: LD_ADDR_VAR 0 2
3925: PUSH
3926: DOUBLE
3927: LD_INT 1
3929: DEC
3930: ST_TO_ADDR
3931: LD_EXP 14
3935: PUSH
3936: FOR_TO
3937: IFFALSE 3994
// begin if IsInUnit ( RuInBunker [ i ] ) then
3939: LD_EXP 14
3943: PUSH
3944: LD_VAR 0 2
3948: ARRAY
3949: PPUSH
3950: CALL_OW 310
3954: IFFALSE 3992
// begin ComExitBuilding ( RuInBunker [ i ] ) ;
3956: LD_EXP 14
3960: PUSH
3961: LD_VAR 0 2
3965: ARRAY
3966: PPUSH
3967: CALL_OW 122
// AddComAgressiveMove ( RuInBunker [ i ] , 124 , 24 ) ;
3971: LD_EXP 14
3975: PUSH
3976: LD_VAR 0 2
3980: ARRAY
3981: PPUSH
3982: LD_INT 124
3984: PPUSH
3985: LD_INT 24
3987: PPUSH
3988: CALL_OW 174
// end ; end ;
3992: GO 3936
3994: POP
3995: POP
// end ; end ;
3996: PPOPN 2
3998: END
// every 0 0$1 do var EnginerList , HealerList , i ;
3999: GO 4001
4001: DISABLE
4002: LD_INT 0
4004: PPUSH
4005: PPUSH
4006: PPUSH
// begin enable ;
4007: ENABLE
// EnginerList := FilterAllUnits ( [ [ f_side , 3 ] , [ f_class , 2 ] , [ f_not , [ f_lives , 850 ] ] ] ) ;
4008: LD_ADDR_VAR 0 1
4012: PUSH
4013: LD_INT 22
4015: PUSH
4016: LD_INT 3
4018: PUSH
4019: EMPTY
4020: LIST
4021: LIST
4022: PUSH
4023: LD_INT 25
4025: PUSH
4026: LD_INT 2
4028: PUSH
4029: EMPTY
4030: LIST
4031: LIST
4032: PUSH
4033: LD_INT 3
4035: PUSH
4036: LD_INT 24
4038: PUSH
4039: LD_INT 850
4041: PUSH
4042: EMPTY
4043: LIST
4044: LIST
4045: PUSH
4046: EMPTY
4047: LIST
4048: LIST
4049: PUSH
4050: EMPTY
4051: LIST
4052: LIST
4053: LIST
4054: PPUSH
4055: CALL_OW 69
4059: ST_TO_ADDR
// HealerList := FilterAllUnits ( [ [ f_side , 3 ] , [ f_class , 4 ] ] ) ;
4060: LD_ADDR_VAR 0 2
4064: PUSH
4065: LD_INT 22
4067: PUSH
4068: LD_INT 3
4070: PUSH
4071: EMPTY
4072: LIST
4073: LIST
4074: PUSH
4075: LD_INT 25
4077: PUSH
4078: LD_INT 4
4080: PUSH
4081: EMPTY
4082: LIST
4083: LIST
4084: PUSH
4085: EMPTY
4086: LIST
4087: LIST
4088: PPUSH
4089: CALL_OW 69
4093: ST_TO_ADDR
// if EnginerList > 0 then
4094: LD_VAR 0 1
4098: PUSH
4099: LD_INT 0
4101: GREATER
4102: IFFALSE 4269
// begin for i = 1 to EnginerList do
4104: LD_ADDR_VAR 0 3
4108: PUSH
4109: DOUBLE
4110: LD_INT 1
4112: DEC
4113: ST_TO_ADDR
4114: LD_VAR 0 1
4118: PUSH
4119: FOR_TO
4120: IFFALSE 4267
// begin ComExitBuilding ( HealerList [ 1 ] ) ;
4122: LD_VAR 0 2
4126: PUSH
4127: LD_INT 1
4129: ARRAY
4130: PPUSH
4131: CALL_OW 122
// if IsInUnit ( EnginerList [ i ] ) then
4135: LD_VAR 0 1
4139: PUSH
4140: LD_VAR 0 3
4144: ARRAY
4145: PPUSH
4146: CALL_OW 310
4150: IFFALSE 4167
// ComExitBuilding ( EnginerList [ i ] ) ;
4152: LD_VAR 0 1
4156: PUSH
4157: LD_VAR 0 3
4161: ARRAY
4162: PPUSH
4163: CALL_OW 122
// wait ( 0 0$1 ) ;
4167: LD_INT 35
4169: PPUSH
4170: CALL_OW 67
// ComMoveToArea ( EnginerList [ 1 ] , RuHealZone ) ;
4174: LD_VAR 0 1
4178: PUSH
4179: LD_INT 1
4181: ARRAY
4182: PPUSH
4183: LD_INT 7
4185: PPUSH
4186: CALL_OW 113
// if not IsInUnit ( EnginerList [ i ] ) then
4190: LD_VAR 0 1
4194: PUSH
4195: LD_VAR 0 3
4199: ARRAY
4200: PPUSH
4201: CALL_OW 310
4205: NOT
4206: IFFALSE 4226
// ComMoveToArea ( EnginerList [ i ] , RuHealZone ) ;
4208: LD_VAR 0 1
4212: PUSH
4213: LD_VAR 0 3
4217: ARRAY
4218: PPUSH
4219: LD_INT 7
4221: PPUSH
4222: CALL_OW 113
// if GetLives ( EnginerList [ i ] ) = 1000 then
4226: LD_VAR 0 1
4230: PUSH
4231: LD_VAR 0 3
4235: ARRAY
4236: PPUSH
4237: CALL_OW 256
4241: PUSH
4242: LD_INT 1000
4244: EQUAL
4245: IFFALSE 4265
// ComEnterUnit ( HealerList [ i ] , rulab ) ;
4247: LD_VAR 0 2
4251: PUSH
4252: LD_VAR 0 3
4256: ARRAY
4257: PPUSH
4258: LD_INT 226
4260: PPUSH
4261: CALL_OW 120
// end ;
4265: GO 4119
4267: POP
4268: POP
// end ; end ; end_of_file
4269: PPOPN 3
4271: END
// every 0 0$1 trigger isdead ( maniek ) or isdead ( gizold ) or isdead ( szakal ) or isdead ( smoke ) or isdead ( immortal ) or isdead ( dragon ) or isdead ( michael ) marked 101 do
4272: LD_EXP 8
4276: PPUSH
4277: CALL_OW 301
4281: PUSH
4282: LD_EXP 7
4286: PPUSH
4287: CALL_OW 301
4291: OR
4292: PUSH
4293: LD_EXP 6
4297: PPUSH
4298: CALL_OW 301
4302: OR
4303: PUSH
4304: LD_EXP 9
4308: PPUSH
4309: CALL_OW 301
4313: OR
4314: PUSH
4315: LD_INT 127
4317: PPUSH
4318: CALL_OW 301
4322: OR
4323: PUSH
4324: LD_INT 142
4326: PPUSH
4327: CALL_OW 301
4331: OR
4332: PUSH
4333: LD_INT 138
4335: PPUSH
4336: CALL_OW 301
4340: OR
4341: IFFALSE 4353
4343: GO 4345
4345: DISABLE
// begin Youlost ( die ) ;
4346: LD_STRING die
4348: PPUSH
4349: CALL_OW 104
// end ; end_of_file
4353: END
// export function PrepareOilBarrel ; var ResDiffS , ResDiffD ; begin
4354: LD_INT 0
4356: PPUSH
4357: PPUSH
4358: PPUSH
// ResDiffS = [ 1 , 1 , 1 ] [ Difficulty ] ;
4359: LD_ADDR_VAR 0 2
4363: PUSH
4364: LD_INT 1
4366: PUSH
4367: LD_INT 1
4369: PUSH
4370: LD_INT 1
4372: PUSH
4373: EMPTY
4374: LIST
4375: LIST
4376: LIST
4377: PUSH
4378: LD_OWVAR 67
4382: ARRAY
4383: ST_TO_ADDR
// ResDiffD = [ 5 , 3 , 1 ] [ Difficulty ] ;
4384: LD_ADDR_VAR 0 3
4388: PUSH
4389: LD_INT 5
4391: PUSH
4392: LD_INT 3
4394: PUSH
4395: LD_INT 1
4397: PUSH
4398: EMPTY
4399: LIST
4400: LIST
4401: LIST
4402: PUSH
4403: LD_OWVAR 67
4407: ARRAY
4408: ST_TO_ADDR
// CreateResourcesArea ( 2 , Rand ( ResDiffS , ResDiffD ) , OilBarel , false ) ;
4409: LD_INT 2
4411: PPUSH
4412: LD_VAR 0 2
4416: PPUSH
4417: LD_VAR 0 3
4421: PPUSH
4422: CALL_OW 12
4426: PPUSH
4427: LD_INT 13
4429: PPUSH
4430: LD_INT 0
4432: PPUSH
4433: CALL_OW 59
// CreateResourcesArea ( 2 , Rand ( ResDiffS , ResDiffD ) , OilBarel , false ) ;
4437: LD_INT 2
4439: PPUSH
4440: LD_VAR 0 2
4444: PPUSH
4445: LD_VAR 0 3
4449: PPUSH
4450: CALL_OW 12
4454: PPUSH
4455: LD_INT 13
4457: PPUSH
4458: LD_INT 0
4460: PPUSH
4461: CALL_OW 59
// CreateResourcesArea ( 2 , Rand ( ResDiffS , ResDiffD ) , OilBarel , false ) ;
4465: LD_INT 2
4467: PPUSH
4468: LD_VAR 0 2
4472: PPUSH
4473: LD_VAR 0 3
4477: PPUSH
4478: CALL_OW 12
4482: PPUSH
4483: LD_INT 13
4485: PPUSH
4486: LD_INT 0
4488: PPUSH
4489: CALL_OW 59
// CreateResourcesArea ( 2 , Rand ( ResDiffS , ResDiffD ) , OilBarel , false ) ;
4493: LD_INT 2
4495: PPUSH
4496: LD_VAR 0 2
4500: PPUSH
4501: LD_VAR 0 3
4505: PPUSH
4506: CALL_OW 12
4510: PPUSH
4511: LD_INT 13
4513: PPUSH
4514: LD_INT 0
4516: PPUSH
4517: CALL_OW 59
// CreateResourcesArea ( 2 , Rand ( ResDiffS , ResDiffD ) , OilBarel , false ) ;
4521: LD_INT 2
4523: PPUSH
4524: LD_VAR 0 2
4528: PPUSH
4529: LD_VAR 0 3
4533: PPUSH
4534: CALL_OW 12
4538: PPUSH
4539: LD_INT 13
4541: PPUSH
4542: LD_INT 0
4544: PPUSH
4545: CALL_OW 59
// CreateResourcesArea ( 2 , Rand ( ResDiffS , ResDiffD ) , OilBarel , false ) ;
4549: LD_INT 2
4551: PPUSH
4552: LD_VAR 0 2
4556: PPUSH
4557: LD_VAR 0 3
4561: PPUSH
4562: CALL_OW 12
4566: PPUSH
4567: LD_INT 13
4569: PPUSH
4570: LD_INT 0
4572: PPUSH
4573: CALL_OW 59
// end ; end_of_file
4577: LD_VAR 0 1
4581: RET
// export apemans , tigers , birds ; export function PrepareNature ; var l , apeman , tiger , bird ; begin
4582: LD_INT 0
4584: PPUSH
4585: PPUSH
4586: PPUSH
4587: PPUSH
4588: PPUSH
// apemans := [ ] ;
4589: LD_ADDR_EXP 16
4593: PUSH
4594: EMPTY
4595: ST_TO_ADDR
// tigers := [ ] ;
4596: LD_ADDR_EXP 17
4600: PUSH
4601: EMPTY
4602: ST_TO_ADDR
// birds := [ ] ;
4603: LD_ADDR_EXP 18
4607: PUSH
4608: EMPTY
4609: ST_TO_ADDR
// uc_nation = nation_nature ;
4610: LD_ADDR_OWVAR 21
4614: PUSH
4615: LD_INT 0
4617: ST_TO_ADDR
// uc_side = 0 ;
4618: LD_ADDR_OWVAR 20
4622: PUSH
4623: LD_INT 0
4625: ST_TO_ADDR
// l = 0 ;
4626: LD_ADDR_VAR 0 2
4630: PUSH
4631: LD_INT 0
4633: ST_TO_ADDR
// repeat begin uc_direction = Rand ( 0 , 5 ) ;
4634: LD_ADDR_OWVAR 24
4638: PUSH
4639: LD_INT 0
4641: PPUSH
4642: LD_INT 5
4644: PPUSH
4645: CALL_OW 12
4649: ST_TO_ADDR
// hc_agressivity = Rand ( 0 , 25 ) ;
4650: LD_ADDR_OWVAR 35
4654: PUSH
4655: LD_INT 0
4657: PPUSH
4658: LD_INT 25
4660: PPUSH
4661: CALL_OW 12
4665: ST_TO_ADDR
// hc_gallery =  ;
4666: LD_ADDR_OWVAR 33
4670: PUSH
4671: LD_STRING 
4673: ST_TO_ADDR
// hc_class = class_apeman ;
4674: LD_ADDR_OWVAR 28
4678: PUSH
4679: LD_INT 12
4681: ST_TO_ADDR
// hc_attr = [ Rand ( 11 , 13 ) , Rand ( 10 , 11 ) ] ;
4682: LD_ADDR_OWVAR 29
4686: PUSH
4687: LD_INT 11
4689: PPUSH
4690: LD_INT 13
4692: PPUSH
4693: CALL_OW 12
4697: PUSH
4698: LD_INT 10
4700: PPUSH
4701: LD_INT 11
4703: PPUSH
4704: CALL_OW 12
4708: PUSH
4709: EMPTY
4710: LIST
4711: LIST
4712: ST_TO_ADDR
// hc_sex = sex_male ;
4713: LD_ADDR_OWVAR 27
4717: PUSH
4718: LD_INT 1
4720: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 2 ) , 0 , 0 , 0 ] ;
4721: LD_ADDR_OWVAR 31
4725: PUSH
4726: LD_INT 0
4728: PPUSH
4729: LD_INT 2
4731: PPUSH
4732: CALL_OW 12
4736: PUSH
4737: LD_INT 0
4739: PUSH
4740: LD_INT 0
4742: PUSH
4743: LD_INT 0
4745: PUSH
4746: EMPTY
4747: LIST
4748: LIST
4749: LIST
4750: LIST
4751: ST_TO_ADDR
// apeman = CreateHuman ;
4752: LD_ADDR_VAR 0 3
4756: PUSH
4757: CALL_OW 44
4761: ST_TO_ADDR
// PlaceUnitArea ( apeman , MapA , false ) ;
4762: LD_VAR 0 3
4766: PPUSH
4767: LD_INT 14
4769: PPUSH
4770: LD_INT 0
4772: PPUSH
4773: CALL_OW 49
// apemans := apemans ^ apeman ;
4777: LD_ADDR_EXP 16
4781: PUSH
4782: LD_EXP 16
4786: PUSH
4787: LD_VAR 0 3
4791: ADD
4792: ST_TO_ADDR
// l = l + 1 ;
4793: LD_ADDR_VAR 0 2
4797: PUSH
4798: LD_VAR 0 2
4802: PUSH
4803: LD_INT 1
4805: PLUS
4806: ST_TO_ADDR
// end until l = 6 ;
4807: LD_VAR 0 2
4811: PUSH
4812: LD_INT 6
4814: EQUAL
4815: IFFALSE 4634
// l = 0 ;
4817: LD_ADDR_VAR 0 2
4821: PUSH
4822: LD_INT 0
4824: ST_TO_ADDR
// repeat begin hc_agressivity = Rand ( 0 , 30 ) ;
4825: LD_ADDR_OWVAR 35
4829: PUSH
4830: LD_INT 0
4832: PPUSH
4833: LD_INT 30
4835: PPUSH
4836: CALL_OW 12
4840: ST_TO_ADDR
// hc_class = class_tiger ;
4841: LD_ADDR_OWVAR 28
4845: PUSH
4846: LD_INT 14
4848: ST_TO_ADDR
// hc_sex = sex_male ;
4849: LD_ADDR_OWVAR 27
4853: PUSH
4854: LD_INT 1
4856: ST_TO_ADDR
// hc_gallery = nature ;
4857: LD_ADDR_OWVAR 33
4861: PUSH
4862: LD_STRING nature
4864: ST_TO_ADDR
// hc_face_number = 3 ;
4865: LD_ADDR_OWVAR 34
4869: PUSH
4870: LD_INT 3
4872: ST_TO_ADDR
// tiger = CreateHuman ;
4873: LD_ADDR_VAR 0 4
4877: PUSH
4878: CALL_OW 44
4882: ST_TO_ADDR
// PlaceUnitArea ( tiger , MapA , false ) ;
4883: LD_VAR 0 4
4887: PPUSH
4888: LD_INT 14
4890: PPUSH
4891: LD_INT 0
4893: PPUSH
4894: CALL_OW 49
// tigers := tigers ^ tiger ;
4898: LD_ADDR_EXP 17
4902: PUSH
4903: LD_EXP 17
4907: PUSH
4908: LD_VAR 0 4
4912: ADD
4913: ST_TO_ADDR
// l = l + 1 ;
4914: LD_ADDR_VAR 0 2
4918: PUSH
4919: LD_VAR 0 2
4923: PUSH
4924: LD_INT 1
4926: PLUS
4927: ST_TO_ADDR
// end until l = [ 1 , 2 , 3 ] [ Difficulty ] ;
4928: LD_VAR 0 2
4932: PUSH
4933: LD_INT 1
4935: PUSH
4936: LD_INT 2
4938: PUSH
4939: LD_INT 3
4941: PUSH
4942: EMPTY
4943: LIST
4944: LIST
4945: LIST
4946: PUSH
4947: LD_OWVAR 67
4951: ARRAY
4952: EQUAL
4953: IFFALSE 4825
// l = 0 ;
4955: LD_ADDR_VAR 0 2
4959: PUSH
4960: LD_INT 0
4962: ST_TO_ADDR
// repeat begin hc_class = class_phororhacos ;
4963: LD_ADDR_OWVAR 28
4967: PUSH
4968: LD_INT 18
4970: ST_TO_ADDR
// hc_gallery = nature ;
4971: LD_ADDR_OWVAR 33
4975: PUSH
4976: LD_STRING nature
4978: ST_TO_ADDR
// hc_face_number = 1 ;
4979: LD_ADDR_OWVAR 34
4983: PUSH
4984: LD_INT 1
4986: ST_TO_ADDR
// bird = CreateHuman ;
4987: LD_ADDR_VAR 0 5
4991: PUSH
4992: CALL_OW 44
4996: ST_TO_ADDR
// PlaceUnitArea ( bird , MapA , false ) ;
4997: LD_VAR 0 5
5001: PPUSH
5002: LD_INT 14
5004: PPUSH
5005: LD_INT 0
5007: PPUSH
5008: CALL_OW 49
// birds := birds ^ bird ;
5012: LD_ADDR_EXP 18
5016: PUSH
5017: LD_EXP 18
5021: PUSH
5022: LD_VAR 0 5
5026: ADD
5027: ST_TO_ADDR
// l = l + 1 ;
5028: LD_ADDR_VAR 0 2
5032: PUSH
5033: LD_VAR 0 2
5037: PUSH
5038: LD_INT 1
5040: PLUS
5041: ST_TO_ADDR
// end until l = 4 ;
5042: LD_VAR 0 2
5046: PUSH
5047: LD_INT 4
5049: EQUAL
5050: IFFALSE 4963
// l = 0 ;
5052: LD_ADDR_VAR 0 2
5056: PUSH
5057: LD_INT 0
5059: ST_TO_ADDR
// end ; end_of_file
5060: LD_VAR 0 1
5064: RET
// export function FastRotate ; begin
5065: LD_INT 0
5067: PPUSH
// SaveCharacters ( michael , michael ) ;
5068: LD_INT 138
5070: PPUSH
5071: LD_STRING michael
5073: PPUSH
5074: CALL_OW 38
// SaveCharacters ( dragon , dragon ) ;
5078: LD_INT 142
5080: PPUSH
5081: LD_STRING dragon
5083: PPUSH
5084: CALL_OW 38
// SaveCharacters ( immortal , immortal ) ;
5088: LD_INT 127
5090: PPUSH
5091: LD_STRING immortal
5093: PPUSH
5094: CALL_OW 38
// RemoveUnit ( Michael ) ;
5098: LD_INT 138
5100: PPUSH
5101: CALL_OW 64
// RemoveUnit ( Dragon ) ;
5105: LD_INT 142
5107: PPUSH
5108: CALL_OW 64
// RemoveUnit ( Immortal ) ;
5112: LD_INT 127
5114: PPUSH
5115: CALL_OW 64
// PlaceHumanInUnit ( Michael , stodola ) ;
5119: LD_INT 138
5121: PPUSH
5122: LD_INT 3
5124: PPUSH
5125: CALL_OW 52
// PlaceHumanInUnit ( Dragon , stodola ) ;
5129: LD_INT 142
5131: PPUSH
5132: LD_INT 3
5134: PPUSH
5135: CALL_OW 52
// PlaceHumanInUnit ( Immortal , stodola ) ;
5139: LD_INT 127
5141: PPUSH
5142: LD_INT 3
5144: PPUSH
5145: CALL_OW 52
// end ;
5149: LD_VAR 0 1
5153: RET
